import java.util.HashMap;

class Solution {
    public int findMaxLength(int[] nums) {
        HashMap<Integer,Integer> hash=new HashMap<>();
        int count=0,len=0;
        for(int i=0;i<nums.length;i++){

            if(nums[i]==1){
                count++;
            }else{
                count--;
            }

            if(count==0)
            {
                len=i+1;
                continue;
            }
            int n=hash.getOrDefault(count,-1);

            if(n!=-1){
                len=Math.max(len,i-n);

            }else{
                hash.put(count,i);
            }
        }
        return len;

    }
}